<!DOCTYPE html>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->


<html>
<head>
    <meta charset="utf-8">
    <script src="lib/esl.js"></script>
    <script src="lib/config.js"></script>
    <script src="lib/jquery.min.js"></script>
    <script src="lib/facePrint.js"></script>
    <script src="ut/lib/canteen.js"></script>
    <script src="lib/testHelper.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <link rel="stylesheet" href="lib/reset.css">
</head>
<body>
<style>
    h1 {
        line-height: 60px;
        height: 60px;
        background: #146402;
        text-align: center;
        font-weight: bold;
        color: #eee;
        font-size: 14px;
    }

    .chart {
        height: 500px;
    }
</style>


<canvas class="chart" id="main"></canvas>


<script>

    var stack =

// -------------------------------------------------

        [


        {"method": "save", "arguments": []}, {
        "method": "clearRect",
        "arguments": [0, 0, 400, 300]
    }, {"method": "save", "arguments": []}, {"attr": "fillStyle", "val": "transparent"}, {
        "method": "fillRect",
        "arguments": [0, 0, 400, 300]
    }, {"method": "restore", "arguments": []}, {"attr": "shadowBlur", "val": 0}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {"attr": "shadowColor", "val": "#000"}, {
        "attr": "lineCap",
        "val": "round"
    }, {"attr": "lineJoin", "val": "miter"}, {"attr": "miterLimit", "val": 10}, {
        "attr": "fillStyle",
        "val": null
    }, {"attr": "strokeStyle", "val": "#333"}, {
        "attr": "globalAlpha",
        "val": 1
    }, {"attr": "globalCompositeOperation", "val": "source-over"}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [40.5, 240]}, {
        "method": "lineTo",
        "arguments": [40.5, 60]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineCap", "val": "butt"}, {"attr": "fillStyle", "val": "#333"}, {
        "attr": "strokeStyle",
        "val": null
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 40, 45]}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "textAlign", "val": "center"}, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["数量", 0, -6]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "lineCap",
        "val": "round"
    }, {"attr": "fillStyle", "val": null}, {"attr": "strokeStyle", "val": "#333"}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [354.5, 240]}, {
        "method": "lineTo",
        "arguments": [354.5, 60]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineCap", "val": "butt"}, {"attr": "fillStyle", "val": "#333"}, {
        "attr": "strokeStyle",
        "val": null
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 354, 45]}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "textAlign", "val": "center"}, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["比例", 0, -6]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "fillStyle",
        "val": null
    }, {"attr": "strokeStyle", "val": "#333"}, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "moveTo",
        "arguments": [40, 240.5]
    }, {"method": "lineTo", "arguments": [35, 240.5]}, {
        "method": "stroke",
        "arguments": []
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [40, 204.5]}, {
        "method": "lineTo",
        "arguments": [35, 204.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "moveTo",
        "arguments": [40, 168.5]
    }, {"method": "lineTo", "arguments": [35, 168.5]}, {
        "method": "stroke",
        "arguments": []
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [40, 132.5]}, {
        "method": "lineTo",
        "arguments": [35, 132.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {"method": "moveTo", "arguments": [40, 96.5]}, {
        "method": "lineTo",
        "arguments": [35, 96.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {"method": "moveTo", "arguments": [40, 60.5]}, {
        "method": "lineTo",
        "arguments": [35, 60.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "moveTo",
        "arguments": [354, 240.5]
    }, {"method": "lineTo", "arguments": [359, 240.5]}, {
        "method": "stroke",
        "arguments": []
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [354, 204.5]}, {
        "method": "lineTo",
        "arguments": [359, 204.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "moveTo",
        "arguments": [354, 168.5]
    }, {"method": "lineTo", "arguments": [359, 168.5]}, {
        "method": "stroke",
        "arguments": []
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [354, 132.5]}, {
        "method": "lineTo",
        "arguments": [359, 132.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "lineWidth", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "moveTo",
        "arguments": [354, 96.5]
    }, {"method": "lineTo", "arguments": [359, 96.5]}, {
        "method": "stroke",
        "arguments": []
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "lineWidth",
        "val": 1
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "beginPath",
        "arguments": []
    }, {"method": "moveTo", "arguments": [354, 60.5]}, {
        "method": "lineTo",
        "arguments": [359, 60.5]
    }, {"method": "stroke", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"attr": "fillStyle", "val": "#333"}, {"attr": "strokeStyle", "val": null}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 32, 240]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "right"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["0", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 32, 204]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "right"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["20", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 32, 168]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "right"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["40", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 32, 132]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "right"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["60", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 32, 96]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "right"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["80", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 32, 60]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "right"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["100", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 362, 240]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "left"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["0%", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 362, 204]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "left"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["20%", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 362, 168]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "left"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["40%", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 362, 132]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "left"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["60%", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 362, 96]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "left"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["80%", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 362, 60]
    }, {"attr": "font", "val": "normal normal 12px sans-serif"}, {
        "attr": "textAlign",
        "val": "left"
    }, {"attr": "textBaseline", "val": "middle"}, {
        "method": "fillText",
        "arguments": ["100%", 0, 0]
    }, {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]}, {
        "attr": "fillStyle",
        "val": "#73cafd"
    }, {"attr": "globalAlpha", "val": 1}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [53.857, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["28", 62.857, 235]
    }, {"method": "restore", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [99.571, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["25", 108.571, 235]
    }, {"method": "restore", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [145.286, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["27", 154.286, 235]
    }, {"method": "restore", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [191, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["26", 200, 235]
    }, {"method": "restore", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [236.714, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["33", 245.714, 235]
    }, {"method": "restore", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [282.429, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["33", 291.429, 235]
    }, {"method": "restore", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [328.143, 240, 18, 0]
    }, {"method": "closePath", "arguments": []}, {"method": "fill", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "save", "arguments": []}, {"attr": "textAlign", "val": "center"}, {
        "attr": "textBaseline",
        "val": "alphabetic"
    }, {"attr": "fillStyle", "val": "#73cafd"}, {
        "attr": "font",
        "val": "normal normal 12px sans-serif"
    }, {"attr": "shadowBlur", "val": 0}, {"attr": "shadowColor", "val": "transparent"}, {
        "attr": "shadowOffsetX",
        "val": 0
    }, {"attr": "shadowOffsetY", "val": 0}, {
        "method": "fillText",
        "arguments": ["33", 337.143, 235]
    }, {"method": "restore", "arguments": []}, {"method": "save", "arguments": []}, {
        "method": "setTransform",
        "arguments": [1, 0, 0, 1, 0, 0]
    }, {"method": "beginPath", "arguments": []}, {
        "method": "rect",
        "arguments": [61.857, 58.5, 0, 183]
    }, {"method": "closePath", "arguments": []},


        {"method": "clip", "arguments": []},
        {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]},
        {"attr": "shadowBlur", "val": 10},
        {"attr": "shadowOffsetX", "val": 10},
        {"attr": "shadowOffsetY", "val": 10},
        {"attr": "shadowColor", "val": "rgba(0,0,0,0.4)"},
        {"attr": "lineJoin", "val": "bevel"},
        {"attr": "fillStyle", "val": "none"},
        {"attr": "strokeStyle", "val": "#999"},
        {"attr": "globalAlpha", "val": 1},
        {"attr": "lineWidth", "val": 3},


        {"method": "setTransform", "arguments": [1, 0, 0, 1, 0, 0]},

        {"method": "beginPath", "arguments": []},
        {"method": "moveTo", "arguments": [62.857, 92.4]},
        {"method": "lineTo", "arguments": [108.571, 112.2]},
        {"method": "lineTo", "arguments": [154.286, 97.8]},
        {"method": "lineTo", "arguments": [200, 88.8]},
// {"method":"lineTo","arguments":[245.714,61.8]},
        {"method": "lineTo", "arguments": [245.714, 81.9]},
// {"method":"lineTo","arguments":[291.429,79.8]},
// {"method":"lineTo","arguments":[337.143,79.8]},
        {"method": "stroke", "arguments": []}

    ]

    // -------------------------------------------------


    function doSet(ctx, stack) {
        stack.forEach(function (item, index) {
            if (item.method) {
                if (item.method !== 'lastFail') {
                    ctx[item.method].apply(ctx, item.arguments);
                }
            } else if (item.attr) {
                ctx[item.attr] = item.val;
            }
        });
    }

    var canvas = document.getElementById('main');
    canvas.width = 400;
    canvas.height = 300;

    // stack = stack.slice(0, 357);
    // console.log(JSON.stringify(stack.slice(0, 357)));


    doSet(canvas.getContext('2d'), stack);


</script>


</body>
</html>
